#include "predicates.h"
#include <iterator>

class segment_iterator: public std::iterator<std::input_iterator_tag, point>
{
    point current_cell, begin_point, end_point, finish_cell;
    int sign;
    bool ready;

public:
    //point finish_cell;

    segment_iterator(const point&);
    segment_iterator(const point&, const point&);

    const point& operator*() const {return current_cell;}
    segment_iterator& operator++();

    bool operator !=(const segment_iterator&) const;
    bool operator ==(const segment_iterator&) const;
};